The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
In typical communication systems, data storage systems, data transfer systems or other systems that encode and decode data, a transmitting device transmits or transfers data to a receiving device over a channel. Generally, the transmitting device encodes the data using some type of error correction code. Some number of additional bits (e.g., parity bits) may be added to the original data for error correction purposes, and then the encoded data is output by the encoding system to be transmitted or transferred over the channel to the receiving device.
In some cases, channel statistics depend on the data transferred, that is, a channel may prefer one data type over another with respect to optimizing data transmission reliability or channel lifetime. For instance, a flash memory device may prefer a logical bit “1” rather than a logical bit “0.” The logical bit “1” may indicate program prohibition, and may translate into less stress during programming and may increase life expectancy for memory cells of the flash memory device.
In other cases, a minimum Hamming weight of an error-corrected code may be desired so that the error-correction has a particular strength. In still other cases, other constraints on the data to be transmitted or transferred may be desired.